Как использовать httpie?
April 26, 2020
HTTPie (эйч-ти-ти-пай) — современная, удобная и кросс-платформенная альтернатива cURL. Он спроектирован для максимально комфортного взаимодействия с веб-сервисами.
Из терминала он вызывается как http
и позволяет делать HTTP-запросы с помощью достаточно естественного синтаксиса без запоминания кучи флагов. Его, в основном, используют для отладки — неважно, http серверов, веб-сервисов или rest api.
- HTTPie имеет интуитивный интерфейс
- отлично поддерживает json
- форматирует и подсвечивает вывод терминала
- поддерживает https, прокси, аутентификацию
- поддерживает формы и загрузку файлов
- можно посылать любые запросы и заголовки
- умеет загружать файлы, как wget
Установка
Debian-like
apt-get install httpie
Mac
brew install httpie
Windows
pip install --upgrade httpie
Как использовать?
http [опции/флаги] [http-метод] URL [параметры]
Самый простой пример использования:
http https://wcademy.ru
Указание http метода
http get https://wcademy.ru
Скачивание файла
http http://placekitten.com/200/300 > 300.jpg
или
http --download http://placekitten.com/200/300
В этом примере мы использовали сервис placekitten. Он возвращает фотку рандомного котэ с указанным размером.
Загрузка файла
Для примера, загрузим файл на filebin:
http https://filebin.net/ < 300.jpg
Отправка формы
Дальше мы будем использовать сервис httpbin.org. Он позволяет отправлять на себя любые http запросы, и возвращает осмысленные ответы. На его главной странице есть его swagger-спецификация.
http --form POST https://httpbin.org/post name=wcademy
Просмотр деталей запроса
Для того, чтобы проверить, что конкретно отправляется можно добавить флаг -v:
http -v --form POST https://httpbin.org/post name=wcademy
Базовая аутентификация
http -a admin:pass https://httpbin.org/basic-auth/admin/pass
Где admin — имя пользователя, а pass — пароль. Мы их дважды пишем в запросе. После флага -a
— те, которые отсылаются, а в /admin/pass
те, относительно которых httpbin будет проверять наш логин-пароль. Можете попробовать отправить другой пароль и закономерно получите 401 UNAUTHORIZED
.
Кастомные HTTP заголовки
Также можно отправить произвольный заголовок в формате «Заголовок:Значение».
Заключение
Ну как? Удобно же? Возможно, кто-то предпочтёт что-то более гуевое, но httpie — лучшее что есть в консоли, и точно гораздо удобнее, чем старый добрый curl. Продолжить знакомство с httpie можно с его справки:
http --help
Ну и, конечно, на официальном сайте или их гитхабе.